bab4043099df6bae37c2e1c254c99af43f8afbee,lang-impl/src/com/intellij/codeInsight/completion/CodeCompletionHandlerBase.java,CodeCompletionHandlerBase,insertDummyIdentifier,#CompletionContext#,290
Before Change
Editor newEditor = InjectedLanguageUtil.getEditorForInjectedLanguage(editor, hostFile, context.getStartOffset());
if (newEditor instanceof EditorWindow) {
EditorWindow injectedEditor = (EditorWindow)newEditor;
int newOffset1 = injectedEditor.logicalPositionToOffset(injectedEditor.hostToInjected(oldEditor.offsetToLogicalPosition(context.getStartOffset())));
int newOffset2 = injectedEditor.logicalPositionToOffset(injectedEditor.hostToInjected(oldEditor.offsetToLogicalPosition(context.getSelectionEndOffset())));
PsiFile injectedFile = injectedEditor.getInjectedFile();
CompletionContext newContext = new CompletionContext(context.project, injectedEditor, injectedFile, context.getOffsetMap());
After Change
final OffsetMap map = new OffsetMap(newEditor.getDocument());
final OffsetMap oldMap = context.getOffsetMap();
for (final OffsetKey key : oldMap.keySet()) {
map.addOffset(key, injectedEditor.logicalPositionToOffset(injectedEditor.hostToInjected(oldEditor.offsetToLogicalPosition(oldMap.getOffset(key)))));
}
CompletionContext newContext = new CompletionContext(context.project, injectedEditor, injectedFile, map);
PsiElement element = findElementAt(injectedFile, newContext.getStartOffset());